import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

class Request{
    public String username;
    public int password;
}

class Response{
    public boolean ok;
}

@WebServlet("/json")
public class JsonParameterServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        使用json格式来进行传输
        ObjectMapper objectMapper = new ObjectMapper();

        // 从请求的输入流中读取JSON数据，并将其转换为Request对象
        Request request = objectMapper.readValue(req.getInputStream(), Request.class);

        System.out.println("username: "+ request.username+"   password: "+request.password);

        // 创建一个Response对象，用于响应客户端
        Response response = new Response();

        response.ok = true; // 设置Response对象的ok属性为true，表示请求处理成功
        String s = objectMapper.writeValueAsString(response);
        resp.setContentType("application/json; charset = utf-8");
        resp.getWriter().write(s);
        System.out.println("显示屏真爽");
        /*
         使用 doGet：当需要从服务器获取数据，并且该操作不会改变服务器状态时（如查询操作）。
         使用 doPost：当需要向服务器提交数据，并且该操作可能改变服务器状态时（如表单提交、文件上传）。
        */
    }
}
